package com.bt.lms.service;

import com.bt.lms.bo.FinishedTeachingArrange;
import com.bt.lms.bo.NoStartTeachingArrange;
import com.bt.lms.bo.ProcessTeachingArrange;
import com.bt.lms.entity.TeachingArrangeInfo;
import com.bt.lms.entity.page.Page;

import java.sql.SQLException;

/**
 * 教学安排服务
 * @author 朱传博
 */
public interface TeachingArrangeService {


    /**
     * 新增教学安排功能
     * @param teachingArrangeInfo 教学安排信息
     * @return  成功/失败
     */

    public boolean add(TeachingArrangeInfo teachingArrangeInfo) throws ClassNotFoundException, SQLException;


    /**
     * 新增并确认开课功能
     * @param teachingArrangeInfo 教学安排信息
     * @return 成功/失败
     */

    public boolean addAffirmCourseStart(TeachingArrangeInfo teachingArrangeInfo) throws SQLException;

    /**
     * 编辑功能
     * @param teachingArrangeInfo  教学安排信息
     * @param teachingArrangeID 要编辑的教学安排信息ID
     * @return 成功/失败
     */

    public boolean edit(TeachingArrangeInfo teachingArrangeInfo, Long teachingArrangeID) throws SQLException, ClassNotFoundException;

    /**
     * 删除功能
     * @param teachingArrangeID 要删除的教学安排ID
     * @return 成功/失败
     */

    public boolean delete(Long teachingArrangeID) throws SQLException, ClassNotFoundException;

    /**
     * 确认开课功能
     * @param teachingArrangeID 要确认开课的ID
     * @return 成功/失败
     */

    public boolean affirmCourseStart(Long teachingArrangeID) throws SQLException, ClassNotFoundException;


    /**
     * 查看教学安排详情功能
     * @param teachingArrangeID 要查看的教学安排id
     * @return 教学安排信息
     */
    public TeachingArrangeInfo queryDetail(Long teachingArrangeID) throws SQLException, ClassNotFoundException;


    /**
     * 分页条件查询未实施的教学安排功能
     * @param page  分页条件模型：
     *                   每一页条数：
     *                   页码：

     * @return  分页模型
     *           每页多少条数据：
     *           总条数：
     *           页码：
     *           数据：
     */
    public Page<TeachingArrangeInfo> pagingConditionQueryNoStartTA(Page<NoStartTeachingArrange> page) throws SQLException;



    /**
     * 分页条件查询实施中的教学安排功能
     * @param page  分页条件模型:
     *                   每一页条数：
     *                   页码：

     * @return   分页模型
     *            每页多少条数据
     *            总条数
     *            页码：
     *            数据：
     */
    public Page<TeachingArrangeInfo> pagingConditionQueryProcess(Page<ProcessTeachingArrange> page) throws SQLException;

    /**
     * 分页条件查询已完成的教学安排功能
     * @param page 分页条件模型：
     *                  每一条页数：
     *                  页码：

     * @return  分页模型：
     *          每页多少条数据
     *          总条数
     *          页码
     *          数据
     */
    public Page<TeachingArrangeInfo> pagingConditionQueryFinished(Page<FinishedTeachingArrange> page) throws SQLException;













}
